#### 科学上网
> ssh -g -D 1080 -p 996 root@47.75.102.227  

#### 本地SSH隧道(将46服务器的80端口上流量转发到我本地8091端口)
> 先打开46服务器ssh的ip转发配置  
>> vim /etc/ssh/sshd_config 
>> 新增一行配置 GatewayPorts clientspecified  
>> 新增超时配置：
ClientAliveCountMax 3600
ClientAliveInterval 60
> 然后本地执行：ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=360 -NfR  0.0.0.0:9080:localhost:8080 root@129.28.193.172


ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=360 -NfR  0.0.0.0:52996:idc01-smsbasicM-mysql-00.dns.missfresh.cn:3306 root@129.28.193.172
ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=360 -NfR  0.0.0.0:52007:idc01-wuliubillingbillM-mysql-00.dns.missfresh.cn:3306 gg@129.28.193.172
max数据库
ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=360 -NfR  0.0.0.0:52007:10.3.39.18:3306 root@129.28.193.172
app_matrix_rw/onP7Bl3b5zJzqWlv

GG20210408

#### 踢出用户
pkill -kill -t pts/0

#### 免密登录
> 1. ssh-keygen -t rsa
> 2. scp /root/.ssh/id_rsa.pub root@192.168.0.2:/root/.ssh/
> 3. ssh root@192.168.0.2
> 4. cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

#### 统计调用次数
grep "validateToKen.req" grampus-ccs.log.info | grep "2019-06-12 13" | grep "CcsTokenServiceImpl" | awk -F 'req=' '{print $2}' | awk -F ',' '{print $1}' | sort -n | uniq -c

#### curl命令
curl --header "X-User-Id:4570" -H "Content-Type: application/json" localhost:9001/sms-internal/pda/move/query-scan -X POST -d '{"warehouseCode":"MRYXSZ-JIANGYILU", "moveType":4, "skuCode":"8269286"}'
curl --header "X-User-Id:3103" -H "Content-Type: application/json" localhost:8080/sms/basic/user/get

#### tcpdump
tcpdump tcp port 80 and host 36.112.67.195
tcpdump tcp host 101.201.197.62

#### 查看某一个时段的日志
sed -n '/起始时间/,/结束时间/p' 日志文件   
例如：查看2019-12-17 12:00:00-12:10:10 时间段内的日志内容     
sed -n '/2019-12-17 12:00:00/,/2019-12-17 12:10:10/p'  online.log     


####nc上传下载文件
服务端：nc -4 -l [port] < 123.log
客户端：nc -4 [remote_host] [remote_port] > 123.log

####jrebel
http://jrebel.cicoding.cn/guid  
http://jrebel.cicoding.cn/C2709474-8C0E-B086-C917-D8D6733C9EBC


#### 启动参数
-Xmx1024M -Xms1024M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+UseStringDeduplication -XX:-OmitStackTraceInFastThrow -XX:+UnlockCommercialFeatures -XX:+FlightRecorder  -server

#### github设置代理
[设置代理]
  git config --global http.http://github.com.proxy http://39.96.83.46:52007
  git config --global https.https://github.com.proxy https://39.96.83.46:52007
[取消代理]
  git config --global --unset http.proxy
  git config --global --unset https.proxy

#### 查看git配置
git config -l

#### git checkout 分支
git checkout -b master_sit origin/master_sit

#### ubuntu apt-get 安装指定版本软件
sudo apt-get install  openssh-client=1:6.6p1-2ubuntu1
sudo apt-cache madison  openssh-client

#### linux下搜索目录下所有文件中包含"hello world"字符的文件
grep -rn "hello world" *

#### linux全盘根据文件名搜索
find / -name xxl-job-admin-2.0.1.jar

#### linux下使用sed直接替换文件中的字符串
sed -i "s|server.port=60003|server.port=60001|" application.properties
注：mac下使用-i需要多加一个空参数：sed -i "" "s|server.port=60003|server.port=60001|" application.properties

#### java开启远程调试命令(不包含jmx)
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=19900,suspend=n 

#### 杀死关键字包含8888的进程
ps -ef | grep 8888 | awk '{print $2}' | sed -n '1p' | xargs kill -9
ps aux | grep -v grep | grep ':8888' | awk '{print $2}' | xargs -I % kill -9 %

#### 查看进程运行时间
查看运行时间：ps -eo etime,cmd | grep java
查看开始运行时间 ps -eo lstart,cmd | grep java

#### awk根据指定列查找
查找第四列等于"0.0.0.0:10001"的进程连接： netstat -anp | awk '$4=="0.0.0.0:10001"'
查找第四列模糊匹配"0.0.0.0:10001"的进程连接： netstat -anp | awk '$4~"0.0.0.0:10001"'

附加：
$0           表示整个当前行
$1           每行第一个字段
NF          字段数量变量
NR          每行的记录号，多文件记录递增
FNR        与NR类似，不过多文件记录不递增，每个文件都从1开始
\t            制表符
\n           换行符
FS          BEGIN时定义分隔符
RS       输入的记录分隔符， 默认为换行符(即文本是按一行一行输入)
~            匹配，与==相比不是精确比较
!~           不匹配，不精确比较
==         等于，必须全部相等，精确比较
!=           不等于，精确比较
&&　     逻辑与
||             逻辑或
+            匹配时表示1个或1个以上
/[0-9][0-9]+/   两个或两个以上数字
/[0-9][0-9]*/    一个或一个以上数字
FILENAME 文件名
OFS      输出字段分隔符， 默认也是空格，可以改为制表符等
ORS        输出的记录分隔符，默认为换行符,即处理结果也是一行一行输出到屏幕
-F'[:#/]'   定义三个分隔符

#### 递归创建文件夹
mkdir -p /a/b/c/d (创建出/a/b/c/d目录结构)

#### Java相关命令
查看GC次数：jstat -gc [pid]
查看内存使用情况：jmap -heap [pid]

#### linux获取当前unix时间戳命令
打印时间戳： date +%s
打印yyyyMMdd：date +%Y%m%d

#### linux系统日志
less /var/log/messages

#### awk求和
cat /Users/sht/nums.log | awk -F 'len=' '{print $2}' | awk '{sum+=$1} END {print sum}'
